#!/bin/bash

# 获取当前脚本所在目录
SCRIPT_DIR="$(dirname "$(realpath "$0")")"

# 创建日志目录（在脚本所在目录下）
LOG_DIR="$SCRIPT_DIR/openwrt_build_logs"
mkdir -p "$LOG_DIR"

# 默认编译参数
MAKE_ARGS="V=s"

# 检查是否传入 -j 参数
if [[ "$*" == *"-j"* ]]; then
    # 如果 -j 后面有数字，提取数字
    if [[ "$*" =~ -j([0-9]+) ]]; then
        CORES="${BASH_REMATCH[1]}"
        MAKE_ARGS="$MAKE_ARGS -j$CORES"
    else
        # 如果 -j 后面没有数字，使用最大核心数
        CORES=$(nproc)
        MAKE_ARGS="$MAKE_ARGS -j$CORES"
    fi
else
    # 如果没有传入 -j 参数，使用单核心
    MAKE_ARGS="$MAKE_ARGS -j1"
fi

# 带时间统计的完整编译命令
{
    echo "==== 编译开始 ==== $(date +'%Y-%m-%d %H:%M:%S')" ;
    echo "使用的编译参数：make $MAKE_ARGS" ;
    time make $MAKE_ARGS 2>&1 ;
    echo "==== 编译结束 ==== $(date +'%Y-%m-%d %H:%M:%S')" ;
} | tee "$LOG_DIR/build_$(date +%Y%m%d_%H%M%S).log"